<?php
	interface SQLAdvanceds {
		/**	CREATE DATABASE dbName DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'dbComments';
		 **/
		public function createDB($dbName = Null);
			public function setComment($comment = Null);

		/**	DROP DATABASE dbName;
		 **/
		public function dropDB($dbName = Null);

		/**	CREATE TABLE dbName.tableName (
		 **		codTableName	INT			NOT NULL AUTO_INCREMENT COMMENT 'codTableNameComments',
		 **		field01			VARCHAR(15)	NOT NULL	COMMENT 'field01Comments',
		 **		PRIMARY KEY (codTableName)
		 **	) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'tableComments';
		 **/
		public function createTable($tableName = Null);
			//public function setComment($comment = Null);
			public function setPK($columnName = Null);
			public function setEngine($engineName = Null);
			public function addColumn($columnName = Null);
				public function setTypeSize($type = Null, $size = Null);
				public function setNotNull();
				public function setAutoIncrement();
				//public function setComment($comment = Null);
			public function addFK($fkName = Null, $fieldName = Null, $tableName = Null, $fieldReference = Null);
				public function setOnUpdate($action = 'NO ACTION');
				public function setOnDelete($action = 'NO ACTION');
				//public function setComment($comment = Null);

		/**	ALTER TABLE dbName.tableName;
		 **/
		public function alterTable($tableName = Null);
			public function changeColumn($columnName = Null, $newColumnName = Null);
				//public function setTypeSize($type = Null, $size = Null);
				//public function setNotNull();
				//public function setAutoIncrement();
				//public function setComment($comment = Null);
			public function setOrderBy($columnName = Null, $asc = True);
			public function dropColumn($columnName = Null);
			public function dropPK();
			public function dropFK($fkName = Null);

		/**	RENAME TABLE dbName.tableName TO dbName.tableName2;
		 **/
		public function renameTable($tableName = Null, $newTableName = Null);

		/**	TRUNCATE TABLE dbName.tableName
		 **/
		public function truncateTable($tableName = Null);

		/**	OPTIMIZE TABLE tableName
		 **/
		public function optimizeTable($tableName = Null);

		/**	DROP TABLE dbName.tableName;
		 **/
		public function dropTable($tableName = Null);

		/**	CREATE USER userName IDENTIFIED BY 'userPass'
		 **/
		public function createUser($userName = Null, $userPass = Null);

		/**	RENAME USER userName TO newUserName
		 **/
		public function renameUser($userName = Null, $newUserName = Null);

		/**	SET PASSWORD FOR userName = 'userPass'
		 **/
		public function setUserPass($userName = Null, $userPass = Null);

		/**	DROP USER userName
		 **/
		public function dropUser($userName = Null);

		/**	REVOKE ALL PRIVILEGES ON dbName[.{tableName[.{columnName | *}] | *}] FROM userName
		 **/
		public function revokeAll($userName = Null, $dbName = Null, $tableName = Null, $columnName = Null);

		/**	GRANT ALL PRIVILEGES ON dbName[.{tableName[.{columnName | *}] | *}] TO userName WITH GRANT OPTION
		 **/
		public function grantAll($userName = Null, $dbName = Null, $tableName = Null, $columnName = Null);

		/**	SHOW DATABASES [LIKE 'pattern']
		 **/
		public function showDBs($pattern = Null);

		/**	SHOW TABLES [FROM dbName] [LIKE 'pattern']
		 **/
		public function showTables($dbName = Null, $pattern = Null);

		/**	SHOW COLUMNS [FROM tableName [FROM dbName]] [LIKE 'pattern']
		 **/
		public function showColumns($dbName = Null, $tableName, $pattern = Null);

		public function addIfExists();
		public function addIfNotExists();
	}
?>